大家好~
繼續昨天的主題,
今天要來把 Laravel 部署上 Server,
順便設定一下 MySQL 與 Nginx。
先來為我們的專案建立一位專屬 User 吧。
sudo mysql -u root 
CREATE DATABASE `ironman2021`;


CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';


// 下面這段給予 laravel 這位 User 在 ironman2021 這個資料庫的所有資料表擁有所有權限
GRANT ALL ON ironman2021 . * TO 'laravel'@'localhost';

再來將專案 clone 下來~
使用 git clone 下載專案 ,
這邊我是將專案放在 /var/www 下。
sudo git clone https://github.com/rrrui0812/Laravel-LINEBot.git ironman2021

// 將 ubuntu 加到 www-data 這個群組
sudo usermod -a -G www-data ubuntu
// 修改擁有者與群組
sudo chown -R ubuntu:www-data /var/www/ironman2021
sudo chown -R www-data:www-data /var/www/ironman2021/storage
composer install
sudo apt install npm
npm install
cp .env.example .env
vim .env
把剛剛新建的 MySQL user 與 Database 寫進 .env。
php artisan key:generate
這個 Key 可以在 .env 內的 APP_KEY 看到。
sudo php artisan migrate
cd /etc/nginx/sites-available
// 複製 default 來修改使用
sudo cp default ironman2021
sudo vim ironman2021
server {
        listen 80;
        root /var/www/ironman2021/public;
        index index.php index.html;
        server_name 127.0.0.1;
        
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}
測試一下,
確定 Nginx 可以正常執行。
sudo nginx -t

為剛剛建立好的 ironman2021 在 sites-enabled 建立連結,
並把 sites-enabled 的 default 刪除。
sudo ln -s /etc/nginx/sites-available/ironman2021 /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
重啟 nginx。
sudo systemctl restart nginx
在瀏覽器上輸入 IP,
看看有沒有出現 Laravel 的預設首頁。
成功~
那麼今天就先這樣啦~
大家明天見!
若文章有任何問題,
還請大家不吝賜教!